package com.cdtye.itps.cms.dao.tunnel.entity;


import com.baomidou.mybatisplus.annotation.*;
import com.cdtye.itps.cms.dao.enums.DelFlagEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

@ApiModel("隧道信息")
@TableName("JC_TUNNEL")
public class JcTunnel {
    @ApiModelProperty("隧道ID")
    @TableId(
            value = "TUNNEL_ID",
            type = IdType.ASSIGN_UUID
    )
    private String tunnelId;
    @ApiModelProperty("隧道字典id")
    private String tunnelDictionaryId;
    @ApiModelProperty("起始公里标")
    private Double beginRoad;
    @ApiModelProperty("行别表ID")
    private String directionId;
    @ApiModelProperty("线路id")
    private String seclineId;
    @ApiModelProperty("截止公里标")
    private Double endRoad;
    @ApiModelProperty("备注信息")
    private String memo;
    @ApiModelProperty("区间站场ID")
    private String siteId;
    @ApiModelProperty("隧道名称")
    private String tunnelName;
    @ApiModelProperty("隧道编号")
    private String tunnelNo;
    @ApiModelProperty("排序号")
    private Long orderNum;
    @ApiModelProperty("创建时间")
    @TableField(
            value = "CREATE_DATETIME",
            fill = FieldFill.INSERT
    )
    private Date createDatetime;
    @ApiModelProperty("更新时间")
    @TableField(
            value = "UPDATE_DATETIME",
            fill = FieldFill.INSERT_UPDATE
    )
    private Date updateDatetime;
    @ApiModelProperty("创建人")
    @TableField(
            value = "CREATE_BY",
            fill = FieldFill.INSERT
    )
    private String createBy;
    @ApiModelProperty("更新人")
    @TableField(
            value = "UPDATE_BY",
            fill = FieldFill.INSERT_UPDATE
    )
    private String updateBy;
    @ApiModelProperty("删除标志，Y=是，N=否")
    private String delFlag;

    public JcTunnel() {
    }

    public String getTunnelId() {
        return this.tunnelId;
    }

    public String getTunnelDictionaryId() {
        return this.tunnelDictionaryId;
    }

    public Double getBeginRoad() {
        return this.beginRoad;
    }

    public String getDirectionId() {
        return this.directionId;
    }

    public String getSeclineId() {
        return this.seclineId;
    }

    public Double getEndRoad() {
        return this.endRoad;
    }

    public String getMemo() {
        return this.memo;
    }

    public String getSiteId() {
        return this.siteId;
    }

    public String getTunnelName() {
        return this.tunnelName;
    }

    public String getTunnelNo() {
        return this.tunnelNo;
    }

    public Long getOrderNum() {
        return this.orderNum;
    }

    public Date getCreateDatetime() {
        return this.createDatetime;
    }

    public Date getUpdateDatetime() {
        return this.updateDatetime;
    }

    public String getCreateBy() {
        return this.createBy;
    }

    public String getUpdateBy() {
        return this.updateBy;
    }

    public String getDelFlag() {
        return this.delFlag;
    }

    public JcTunnel setTunnelId(String tunnelId) {
        this.tunnelId = tunnelId;
        return this;
    }

    public JcTunnel setTunnelDictionaryId(String tunnelDictionaryId) {
        this.tunnelDictionaryId = tunnelDictionaryId;
        return this;
    }

    public JcTunnel setBeginRoad(Double beginRoad) {
        this.beginRoad = beginRoad;
        return this;
    }

    public JcTunnel setDirectionId(String directionId) {
        this.directionId = directionId;
        return this;
    }

    public JcTunnel setSeclineId(String seclineId) {
        this.seclineId = seclineId;
        return this;
    }

    public JcTunnel setEndRoad(Double endRoad) {
        this.endRoad = endRoad;
        return this;
    }

    public JcTunnel setMemo(String memo) {
        this.memo = memo;
        return this;
    }

    public JcTunnel setSiteId(String siteId) {
        this.siteId = siteId;
        return this;
    }

    public JcTunnel setTunnelName(String tunnelName) {
        this.tunnelName = tunnelName;
        return this;
    }

    public JcTunnel setTunnelNo(String tunnelNo) {
        this.tunnelNo = tunnelNo;
        return this;
    }

    public JcTunnel setOrderNum(Long orderNum) {
        this.orderNum = orderNum;
        return this;
    }

    public JcTunnel setCreateDatetime(Date createDatetime) {
        this.createDatetime = createDatetime;
        return this;
    }

    public JcTunnel setUpdateDatetime(Date updateDatetime) {
        this.updateDatetime = updateDatetime;
        return this;
    }

    public JcTunnel setCreateBy(String createBy) {
        this.createBy = createBy;
        return this;
    }

    public JcTunnel setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
        return this;
    }

    public JcTunnel setDelFlag(String delFlag) {
        this.delFlag = delFlag;
        return this;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof JcTunnel)) {
            return false;
        } else {
            JcTunnel other = (JcTunnel)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label203: {
                    Object this$tunnelId = this.getTunnelId();
                    Object other$tunnelId = other.getTunnelId();
                    if (this$tunnelId == null) {
                        if (other$tunnelId == null) {
                            break label203;
                        }
                    } else if (this$tunnelId.equals(other$tunnelId)) {
                        break label203;
                    }

                    return false;
                }

                Object this$tunnelDictionaryId = this.getTunnelDictionaryId();
                Object other$tunnelDictionaryId = other.getTunnelDictionaryId();
                if (this$tunnelDictionaryId == null) {
                    if (other$tunnelDictionaryId != null) {
                        return false;
                    }
                } else if (!this$tunnelDictionaryId.equals(other$tunnelDictionaryId)) {
                    return false;
                }

                Object this$beginRoad = this.getBeginRoad();
                Object other$beginRoad = other.getBeginRoad();
                if (this$beginRoad == null) {
                    if (other$beginRoad != null) {
                        return false;
                    }
                } else if (!this$beginRoad.equals(other$beginRoad)) {
                    return false;
                }

                label182: {
                    Object this$directionId = this.getDirectionId();
                    Object other$directionId = other.getDirectionId();
                    if (this$directionId == null) {
                        if (other$directionId == null) {
                            break label182;
                        }
                    } else if (this$directionId.equals(other$directionId)) {
                        break label182;
                    }

                    return false;
                }

                label175: {
                    Object this$seclineId = this.getSeclineId();
                    Object other$seclineId = other.getSeclineId();
                    if (this$seclineId == null) {
                        if (other$seclineId == null) {
                            break label175;
                        }
                    } else if (this$seclineId.equals(other$seclineId)) {
                        break label175;
                    }

                    return false;
                }

                label168: {
                    Object this$endRoad = this.getEndRoad();
                    Object other$endRoad = other.getEndRoad();
                    if (this$endRoad == null) {
                        if (other$endRoad == null) {
                            break label168;
                        }
                    } else if (this$endRoad.equals(other$endRoad)) {
                        break label168;
                    }

                    return false;
                }

                Object this$memo = this.getMemo();
                Object other$memo = other.getMemo();
                if (this$memo == null) {
                    if (other$memo != null) {
                        return false;
                    }
                } else if (!this$memo.equals(other$memo)) {
                    return false;
                }

                label154: {
                    Object this$siteId = this.getSiteId();
                    Object other$siteId = other.getSiteId();
                    if (this$siteId == null) {
                        if (other$siteId == null) {
                            break label154;
                        }
                    } else if (this$siteId.equals(other$siteId)) {
                        break label154;
                    }

                    return false;
                }

                Object this$tunnelName = this.getTunnelName();
                Object other$tunnelName = other.getTunnelName();
                if (this$tunnelName == null) {
                    if (other$tunnelName != null) {
                        return false;
                    }
                } else if (!this$tunnelName.equals(other$tunnelName)) {
                    return false;
                }

                label140: {
                    Object this$tunnelNo = this.getTunnelNo();
                    Object other$tunnelNo = other.getTunnelNo();
                    if (this$tunnelNo == null) {
                        if (other$tunnelNo == null) {
                            break label140;
                        }
                    } else if (this$tunnelNo.equals(other$tunnelNo)) {
                        break label140;
                    }

                    return false;
                }

                Object this$orderNum = this.getOrderNum();
                Object other$orderNum = other.getOrderNum();
                if (this$orderNum == null) {
                    if (other$orderNum != null) {
                        return false;
                    }
                } else if (!this$orderNum.equals(other$orderNum)) {
                    return false;
                }

                Object this$createDatetime = this.getCreateDatetime();
                Object other$createDatetime = other.getCreateDatetime();
                if (this$createDatetime == null) {
                    if (other$createDatetime != null) {
                        return false;
                    }
                } else if (!this$createDatetime.equals(other$createDatetime)) {
                    return false;
                }

                label119: {
                    Object this$updateDatetime = this.getUpdateDatetime();
                    Object other$updateDatetime = other.getUpdateDatetime();
                    if (this$updateDatetime == null) {
                        if (other$updateDatetime == null) {
                            break label119;
                        }
                    } else if (this$updateDatetime.equals(other$updateDatetime)) {
                        break label119;
                    }

                    return false;
                }

                label112: {
                    Object this$createBy = this.getCreateBy();
                    Object other$createBy = other.getCreateBy();
                    if (this$createBy == null) {
                        if (other$createBy == null) {
                            break label112;
                        }
                    } else if (this$createBy.equals(other$createBy)) {
                        break label112;
                    }

                    return false;
                }

                Object this$updateBy = this.getUpdateBy();
                Object other$updateBy = other.getUpdateBy();
                if (this$updateBy == null) {
                    if (other$updateBy != null) {
                        return false;
                    }
                } else if (!this$updateBy.equals(other$updateBy)) {
                    return false;
                }

                Object this$delFlag = this.getDelFlag();
                Object other$delFlag = other.getDelFlag();
                if (this$delFlag == null) {
                    if (other$delFlag != null) {
                        return false;
                    }
                } else if (!this$delFlag.equals(other$delFlag)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof JcTunnel;
    }

    public int hashCode() {
        int result = 1;
        Object $tunnelId = this.getTunnelId();
        result = result * 59 + ($tunnelId == null ? 43 : $tunnelId.hashCode());
        Object $tunnelDictionaryId = this.getTunnelDictionaryId();
        result = result * 59 + ($tunnelDictionaryId == null ? 43 : $tunnelDictionaryId.hashCode());
        Object $beginRoad = this.getBeginRoad();
        result = result * 59 + ($beginRoad == null ? 43 : $beginRoad.hashCode());
        Object $directionId = this.getDirectionId();
        result = result * 59 + ($directionId == null ? 43 : $directionId.hashCode());
        Object $seclineId = this.getSeclineId();
        result = result * 59 + ($seclineId == null ? 43 : $seclineId.hashCode());
        Object $endRoad = this.getEndRoad();
        result = result * 59 + ($endRoad == null ? 43 : $endRoad.hashCode());
        Object $memo = this.getMemo();
        result = result * 59 + ($memo == null ? 43 : $memo.hashCode());
        Object $siteId = this.getSiteId();
        result = result * 59 + ($siteId == null ? 43 : $siteId.hashCode());
        Object $tunnelName = this.getTunnelName();
        result = result * 59 + ($tunnelName == null ? 43 : $tunnelName.hashCode());
        Object $tunnelNo = this.getTunnelNo();
        result = result * 59 + ($tunnelNo == null ? 43 : $tunnelNo.hashCode());
        Object $orderNum = this.getOrderNum();
        result = result * 59 + ($orderNum == null ? 43 : $orderNum.hashCode());
        Object $createDatetime = this.getCreateDatetime();
        result = result * 59 + ($createDatetime == null ? 43 : $createDatetime.hashCode());
        Object $updateDatetime = this.getUpdateDatetime();
        result = result * 59 + ($updateDatetime == null ? 43 : $updateDatetime.hashCode());
        Object $createBy = this.getCreateBy();
        result = result * 59 + ($createBy == null ? 43 : $createBy.hashCode());
        Object $updateBy = this.getUpdateBy();
        result = result * 59 + ($updateBy == null ? 43 : $updateBy.hashCode());
        Object $delFlag = this.getDelFlag();
        result = result * 59 + ($delFlag == null ? 43 : $delFlag.hashCode());
        return result;
    }

    public String toString() {
        return "JcTunnel(tunnelId=" + this.getTunnelId() + ", tunnelDictionaryId=" + this.getTunnelDictionaryId() + ", beginRoad=" + this.getBeginRoad() + ", directionId=" + this.getDirectionId() + ", seclineId=" + this.getSeclineId() + ", endRoad=" + this.getEndRoad() + ", memo=" + this.getMemo() + ", siteId=" + this.getSiteId() + ", tunnelName=" + this.getTunnelName() + ", tunnelNo=" + this.getTunnelNo() + ", orderNum=" + this.getOrderNum() + ", createDatetime=" + this.getCreateDatetime() + ", updateDatetime=" + this.getUpdateDatetime() + ", createBy=" + this.getCreateBy() + ", updateBy=" + this.getUpdateBy() + ", delFlag=" + this.getDelFlag() + ")";
    }
}
